/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package controller;

import org.apache.log4j.*;
import org.apache.log4j.xml.DOMConfigurator;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.validation.BindException;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.AbstractCommandController;
import model.Usuario;
import model.Participante;
import model.Viaje;
import java.util.List;
import org.springframework.beans.support.PagedListHolder;
import service.UsuarioService;
import service.ViajeService;
import service.ParticipanteService;
import service.amigoService;
import funcion.enviarMail;
import service.ComentarioService;

/**
 *
 * @author MIS DOCUMENTOS
 */
public class HacerInvitacion extends AbstractCommandController {

    private UsuarioService usuarioService;
    private ParticipanteService participanteService;
    private enviarMail enviarmail;
    private ComentarioService comentarioService;
    private ViajeService viajeService;
    private static Logger loggers = null;

    public void setParticipanteService(ParticipanteService participanteService) {
        this.participanteService = participanteService;
    }

    public void setUsuarioService(UsuarioService usuarioService) {
        this.usuarioService = usuarioService;
    }

    public void setComentarioService(ComentarioService comentarioService) {
        this.comentarioService = comentarioService;
    }

    public void setViajeService(ViajeService viajeService) {
        this.viajeService = viajeService;
    }

    public HacerInvitacion() {
        this.setCommandClass(Usuario.class);
    }

    protected ModelAndView handle(HttpServletRequest request, HttpServletResponse response, Object form, BindException errors) throws Exception {
        Map model = new HashMap();

        Usuario user2;
        Usuario user1;
        Viaje viaje;
        String correo;

        System.out.println(request.getParameter("ux"));
        System.out.println(request.getParameter("uv"));

        user1 = (Usuario) usuarioService.getUsuario(Long.parseLong(request.getParameter("ux")));
        user2 = (Usuario) usuarioService.getUsuario(Long.parseLong(request.getParameter("ua")));
        List via;
        via = viajeService.buscarViaje(request.getParameter("uv"), Long.parseLong(request.getParameter("ux")));
        correo = user2.getCorreo();

        viaje = (Viaje) via.get(0);

        Participante nuevo = new Participante(user2,viaje,"INVITADO");

        System.out.println(nuevo.getUsuario().getNombre());

        participanteService.saveAmigoViaje(nuevo);
       // enviarmail.setMensaje(correo, "Invitación de " + user1.getNombre() + " a viajar por hayTour", "Estimado(a): " + user2.getNombre() + ", a recibido la invitación de: " + user1.getNombre() + " " + user1.getApellido() + " para realizar un viaje a, " + viaje.getNombre() + ".");
        List Comentarios;
        Comentarios = comentarioService.getListaComentario(Long.parseLong(request.getParameter("uv")));


        request.getSession().setAttribute("usuarioList", null);
        model.put("title", "MODIFICAR DATOS");
        model.put("usuario", user1);
        model.put("viaje", viaje);
        model.put("comentar",Comentarios);
        return new ModelAndView("ViajeAdministrador", model);

    }
}
